import socket


def send_msg(udp_socket):
    """发送消息"""
    dest_ip = input('请输入对方的ip地址:')
    dest_port = int(input('请输入对方的端口号:'))
    send_data = input('请输入要发送的数据:')
    udp_socket.sendto(send_data.encode('utf-8'), (dest_ip, dest_port))


def recv_msg(udp_socket):
    """接收消息"""
    recv_data, addr = udp_socket.recvfrom(1024)
    print('来自%s的数据:%s' % (addr, recv_data.decode('utf-8')))


def main():
    # 创建socket
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 绑定端口
    udp_socket.bind(('', 7788))

    while True:
        print("------UDP聊天室------")
        print('1.发送消息 2.接收消息 0.退出')
        op = input('请输入操作:')
        if op == '1':
            send_msg(udp_socket)
        elif op == '2':
            recv_msg(udp_socket)
        elif op == '0':
            break


if __name__ == '__main__':
    main()
